Computer networking uses various data communications techniques to transmit information from one computer to another over a network. A typical network includes a series of interconnected data communications devices that can each exchange data from one device to another, enabling the exchange of information. In a typical computer networking application, source and destination computer hosts are personal computers, workstations, clients and servers or the like which each include a modem or other transmitter that is used to establish a connection to the network and transmit the data from the computer.
Quite often, a portion of the data communications path upon which data travels between a source and destination computer host is comprised of a dial-up connection. Dial-up connections, as their name implies, do not always exist. Rather, they are created on an as-needed basis to create a data link between two data communications devices. Until the establishment of communications between the source and destination host exists, a dial-up connection may not be in existence for one or more segments of the network path used to transfer data.
For example, suppose a computer on the Internet begins to transmit packets of data that are destined for a remote host located in an isolated area. Further assume there is not permanent or dedicated connection to and from the remote host. On route to the destination host, the data packets are routed to a router on the Internet that is called an edge system. An edge system or edge router is typically a Network Access Server (NAS) that includes a number of IP network interfaces permanently coupled to the Internet, as well as a number of dial-in/dial-out interfaces allowing call connections to be placed (and received) over a circuit switched network such as a Public Switched Telephone System (PSTN). The edge NAS detects that the arriving data packets are destined for the remotely located host (via routing information in the packets) and initiates a dial-up connection to the remote host. Once the dial-up connection is established via modem communications between the remote host and the NAS, the data packets can be successfully transmitted (and received) to and from the remote host. When the communications session is ended by either one of the source or destination (i.e. remote) hosts, the dial-up connection between the NAS and the remote host is disconnected.
The above example is called “dial on demand routing” because the dial-up connections are made on an as-needed basis. In the above example and in this specification, the packet-based IP network (e.g., the Internet) which includes the edge NAS system is called the local network. The host to which the dial up connection is made may be a single host or may be an edge router or NAS on an entirely separate network and is called the remote host.
In an IP network such as the Internet, the routes which data packets take while traveling through the network from one device to another between a source and destination host are determined by various Internet Protocol (IP) routing protocols. IP routes which point from a local edge router system (e.g., the NAS above) to a remote host may be installed (i.e., configured within the devices on the network) by configuration or by dynamic routing mechanisms. Essentially, a route means that all IP data traffic originating on the local network is routed through the local edge system designated in the route. When the first packet of data arrives on this route, the edge system establishes the dial-up connection. The dial-up connection is made to a switched circuit network which can include circuit switched (e.g., PSTN, ISDN, T1 Signaling) and switch virtual circuit (i.e. X.25, ATM, L2TP) networks.
Conditions in the local network (i.e., the Internet) may occur which require more than one dial-up connection to be established to the remote host. For example, each dial-up connection requires the use of one port in the NAS. If there are many existing dial-up connections in use to various remote systems, there may be no ports left to establish a new dial-up connection that is required for packets arriving for a remote host not already connected. Alternatively, a situation may arise where a single existing dial-up connection to a remote host does not provide enough bandwidth for all of the data packets that must be sent and received by the remote host. If there are no more dial-out ports available on the NAS, the NAS is said to be congested or over-subscribed.
To avoid congestion there are two prior art mechanisms to allow multiple local systems (i.e., two or more NAS's) to connect to a single remote system. The two mechanisms are called “Equal Cost Routing” and “Unequal Cost Routing”.
In Equal Cost Routing, multiple routes to the same remote host are established and are given an equal weighting in the routing protocol. A weight given to a route is used to determine which edge system receives a given packet for forwarding to the remote host. As packets are transferred through the network, they may be forwarded to one of many edge systems, each of which indicates the same weight, thus lessening the chance that any one edge system becomes overcrowded.
In Unequal Cost Routing, a priority is established between edge systems that can connect with a remote system. A lesser priority edge system is used to establish a dial-up connection if a higher priority edge system is not advertising its route(s) to the remote system. Route advertising is a mechanism by which a router can indicate to other routers the capability to provide a path to a specified system. In unequal cost routing, if a router is malfunctioning due to congestion or over subscription, the congested edge system can cease advertising it route. Packets for the remote system will then be routed to a lesser priority system which can then establish the dial-up connection to the remote system.
Another aspect of data communications related to dial-on-demand routing is called “bandwidth-on-demand.” Bandwidth-on-demand in the prior art is known to work well for dial-in connections from remote systems to edge systems, but dial-out is only known to work well when all calls originate from the same edge server. Bandwidth-on-demand allows a remote system to detect that more bandwidth is required for one or more dial-in data communication sessions that are currently active. As such, bandwidth-on-demand provides the remote systems the ability to create an additional dial-in connection(s) to the edge system to satisfy the additional band-width requirements. The additional dial-in connection(s) off-load the bandwidth requirements from the existing heavily loaded connection(s). Bandwidth on demand is also referred to as a multi-link Point-To-Point (PPP) connection.